{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MLP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "import keras\n",
    "from optimizers import StochasticGradientDescent\n",
    "from layers import Dense,Dropout,Activation,BatchNormalization,Flatten\n",
    "from neural_networks import NeuralNetwork\n",
    "from losses import CrossEntropy\n",
    "from sklearn import datasets\n",
    "from metric import accuracy_score\n",
    "from progress import to_categorical,train_test_split\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def load_dataset(flatten=False):\n",
    "    (X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()\n",
    "\n",
    "    X_train = X_train.astype(float) / 255.\n",
    "    X_test = X_test.astype(float) / 255.\n",
    "\n",
    "    X_train, X_val = X_train[:-10000], X_train[-10000:]\n",
    "    y_train, y_val = y_train[:-10000], y_train[-10000:]\n",
    "\n",
    "    if flatten:\n",
    "        X_train = X_train.reshape([X_train.shape[0], -1])\n",
    "        X_val = X_val.reshape([X_val.shape[0], -1])\n",
    "        X_test = X_test.reshape([X_test.shape[0], -1])\n",
    "\n",
    "    return X_train, y_train, X_val, y_val, X_test, y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, Y_train, X_val, Y_val, X_test, Y_test = load_dataset(flatten=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train = to_categorical(Y_train)\n",
    "y_test = to_categorical(Y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 简单平凡网络结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "optimizer = StochasticGradientDescent()\n",
    "n_samples, n_features = X_train.shape\n",
    "n_hidden = 256\n",
    "\n",
    "\n",
    "clf = NeuralNetwork(optimizer=optimizer,\n",
    "                    loss=CrossEntropy,\n",
    "                    validation_data=(X_test, y_test))\n",
    "\n",
    "clf.add(Dense(n_hidden, input_shape=(n_features,)))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(Dense(n_hidden))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(Dense(10))\n",
    "clf.add(Activation('softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Training: 100% [------------------------------------------------] Time: 0:02:24\n"
     ]
    }
   ],
   "source": [
    "train_err1, val_err1 = clf.fit(X_train, y_train, n_epochs=25, batch_size=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1196a80b8>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x129ad91d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = len(train_err1)\n",
    "training, = plt.plot(range(n), train_err1, label=\"Training Error\")\n",
    "validation, = plt.plot(range(n), val_err1, label=\"Validation Error\")\n",
    "plt.legend(handles=[training, validation])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98309999999999997"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_,acc = clf.test_on_batch(X_test,y_test)\n",
    "acc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 加入dropout后的效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "clf = NeuralNetwork(optimizer=optimizer,\n",
    "                    loss=CrossEntropy,\n",
    "                    validation_data=(X_test, y_test))\n",
    "\n",
    "clf.add(Dense(n_hidden, input_shape=(n_features,)))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(Dropout(0.2))\n",
    "clf.add(Dense(n_hidden))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(Dropout(0.5))\n",
    "clf.add(Dense(10))\n",
    "clf.add(Activation('softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Training: 100% [------------------------------------------------] Time: 0:02:51\n"
     ]
    }
   ],
   "source": [
    "train_err2, val_err2 = clf.fit(X_train, y_train, n_epochs=25, batch_size=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x11c03d160>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x129ad9c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = len(train_err2)\n",
    "training, = plt.plot(range(n), train_err2, label=\"Training Error\")\n",
    "validation, = plt.plot(range(n), val_err2, label=\"Validation Error\")\n",
    "plt.legend(handles=[training, validation])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9788"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_,acc = clf.test_on_batch(X_test,y_test)\n",
    "acc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加入batchNormalization后的效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "clf = NeuralNetwork(optimizer=optimizer,\n",
    "                    loss=CrossEntropy,\n",
    "                    validation_data=(X_test, y_test))\n",
    "\n",
    "clf.add(Dense(n_hidden, input_shape=(n_features,)))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(Dropout(0.2))\n",
    "clf.add(BatchNormalization())\n",
    "clf.add(Dense(n_hidden))\n",
    "clf.add(Activation('relu'))\n",
    "clf.add(BatchNormalization())\n",
    "clf.add(Dropout(0.5))\n",
    "clf.add(Dense(10))\n",
    "clf.add(Activation('softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Training: 100% [------------------------------------------------] Time: 0:03:26\n"
     ]
    }
   ],
   "source": [
    "train_err3, val_err3 = clf.fit(X_train, y_train, n_epochs=25, batch_size=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x12c792860>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c03d668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = len(train_err3)\n",
    "training, = plt.plot(range(n), train_err3, label=\"Training Error\")\n",
    "validation, = plt.plot(range(n), val_err3, label=\"Validation Error\")\n",
    "plt.legend(handles=[training, validation])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x12c863eb8>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c025518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "no_batchNormalization, =plt.plot(val_err1,label=\"no batchNormalization\")\n",
    "with_batchNormalization,=plt.plot(val_err3,label=\"with batchNormalization\")\n",
    "plt.legend(handles=[no_batchNormalization, with_batchNormalization])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
